package com.common.android.utils;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
 
/**
 * SharedPreferences文件工具类
 * <br>Created 2014-8-25 下午8:28:08
 * @version  
 * @author   huangyx		
 * @see 	 
 * Copyright(c) 2009-2014, TQ Digital Entertainment, All Rights Reserved
 */
public class SharedPreferencesUtils {
	
	/**
	 * 获取SharedPreferences对象
	 * <br>Created 2014-8-25 下午8:12:13
     * @param ctx 上下文
     * @param PREF_NAME SharedPreferences文件名
	 * @return SharedPreferences对象
	 * @author       huangyx
	 */
	public static SharedPreferences getSharedPreferences(Context ctx,
			String PREF_NAME) {
		SharedPreferences mSettings = ctx.getSharedPreferences(PREF_NAME, 0);
		return mSettings;

	}

	/**
	 * 获取SharedPreferences.Editor对象
	 * <br>Created 2014-8-25 下午8:12:45
	 * @param ctx 上下文
     * @param PREF_NAME SharedPreferences文件名
     * @return SharedPreferences.Editor对象
	 * @author       huangyx
	 */
	@SuppressLint("CommitPrefEdits")
    public static Editor getEditor(Context ctx, String PREF_NAME) {
		SharedPreferences mSettings = ctx.getSharedPreferences(PREF_NAME, 0);
		Editor editor = mSettings.edit();
		return editor;

	}
	
	/**
	 * 保存string类型的value值到SharedPreferences文件
	 * <br>Created 2014-8-25 下午8:13:35
	 * @param ctx 上下文
     * @param PREF_NAME SharedPreferences文件名
	 * @param key key值
	 * @param value value值
	 * @author       huangyx
	 */
	public static void saveStringKey(Context ctx, String PREF_NAME, String key, String value) {
		SharedPreferences mSettings = ctx.getSharedPreferences(PREF_NAME, 0);
		Editor mEditor = mSettings.edit();
		mEditor.putString(key, value);
		mEditor.commit();
	}
	
	/**
     * 从SharedPreferences文件获取string类型的value值
     * <br>Created 2014-8-25 下午8:14:35
     * @param ctx 上下文
     * @param PREF_NAME SharedPreferences文件名
     * @param key key值
     * @return value值
     * @author       huangyx
     */
    public static String loadStringKey(Context ctx, String PREF_NAME, String key) {
        SharedPreferences mSettings = ctx.getSharedPreferences(PREF_NAME, 0);
        return mSettings.getString(key, "");
    }
    
   
	/**
     * 保存boolean类型的value值到SharedPreferences文件
     * <br>Created 2014-8-25 下午8:14:35
     * @param ctx 上下文
     * @param PREF_NAME SharedPreferences文件名
     * @param key key值
     * @param value value值
     * @author       huangyx
     */
	public static void saveBooleanKey(Context ctx, String PREF_NAME, String key, boolean value) {
		SharedPreferences mSettings = ctx.getSharedPreferences(PREF_NAME, 0);
		Editor mEditor = mSettings.edit();
		mEditor.putBoolean(key, value);
		mEditor.commit();
	}
	/**
     * 从SharedPreferences文件获取boolean类型的value值
     * <br>Created 2014-8-25 下午8:14:35
     * @param ctx 上下文
     * @param PREF_NAME SharedPreferences文件名
     * @param key key值
     * @return value值
     * @author       huangyx
     */
	 public static boolean loadBooleanKey(Context ctx, String PREF_NAME,String key) {
	        SharedPreferences mSettings = ctx.getSharedPreferences(PREF_NAME, 0);
	        return  mSettings.getBoolean(key, false);
	 }
	 
	/**
     * 保存int类型的value值到SharedPreferences文件
     * <br>Created 2014-8-25 下午8:16:35
     * @param ctx 上下文
     * @param PREF_NAME SharedPreferences文件名
     * @param key key值
     * @param value value值
     * @author       huangyx
     */
	public static void saveIntKey(Context ctx, String PREF_NAME, String key, int value) {
		SharedPreferences mSettings = ctx.getSharedPreferences(PREF_NAME, 0);
		Editor mEditor = mSettings.edit();
		mEditor.putInt(key, value);
		mEditor.commit();
	}
	
	/**
     * 从SharedPreferences文件获取int类型的value值
     * <br>Created 2014-8-25 下午8:14:35
     * @param ctx 上下文
     * @param PREF_NAME SharedPreferences文件名
     * @param key key值
     * @param defValue key不存在是返回默认值defValue
     * @return value值
     * @author       huangyx
     */
	public static int loadIntKey(Context ctx, String PREF_NAME, String key, int defValue) {
		SharedPreferences mSettings = ctx.getSharedPreferences(PREF_NAME, 0);
		return  mSettings.getInt(key, defValue);
	}
	
	/**
	 * 删除SharedPreferences文件的key-value对
	 * <br>Created 2014-8-25 下午8:19:52
	 * @param ctx 上下文
     * @param PREF_NAME SharedPreferences文件名
     * @param key key值
	 * @author       huangyx
	 */
    public static void removeKey(Context ctx, String PREF_NAME, String key) {
    	SharedPreferences mSettings = ctx.getSharedPreferences(PREF_NAME, 0);
    	Editor mEditor = mSettings.edit();
        mEditor.remove(key);
        mEditor.commit();
    }

}
